package org.xx.armory.db;

import org.xx.armory.commons.ArmoryGenericException;

import java.sql.SQLException;

/**
 * 访问数据库触发的异常。
 *
 * @author Dev
 */
public class DbException
        extends ArmoryGenericException {

    private static final long serialVersionUID = 1L;

    /**
     * 构造访问数据库触发的异常。
     *
     * @param message
     *         异常消息
     */
    public DbException(
            String message
    ) {
        super(message);
    }

    /**
     * 构造访问数据库触发的异常。
     *
     * @param message
     *         异常消息。
     * @param cause
     *         引发异常的原因。
     */
    public DbException(
            String message,
            Throwable cause
    ) {
        super(message, cause);
    }

    /**
     * 构造访问数据库触发的异常。
     *
     * @param cause
     *         引发异常的原因。
     */
    public DbException(
            SQLException cause
    ) {
        super(cause.getMessage(), cause);
    }

    /**
     * 构造访问数据库触发的异常。
     *
     * @param cause
     *         引发异常的原因。
     */
    public DbException(
            Exception cause
    ) {
        this("failed to access database.", cause);
    }
}
